package org.easy.core.enums;

/**
 * 不展示相应码-系统级别[0,500）
 * 展示响应码-系统级别[500,1000）
 * <p>
 * 不展示相应码-业务级[-∞,-10000）
 * 展示响应码-业务级别[10000,+∞)
 */
public enum StateCodeEnum implements StateCode {

    /**
     * ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓不展示相应码-系统级别[0,500）↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
     */
    SYSTEM_FAIL(150, "系统错误"),
    SUCCESS(200, "请求成功"),
    RECORD_NOT_EXITS(201, "记录不存在"),
    RECORD_IS_EXITS(202, "记录已存在"),
    REMOTE_SERVICE_TIMEOUT(301, "远端服务调用超时"),
    RESOURCE_NOT_ALLOW(407, "资源访问受限制"),


    RE_LOGIN_V2(505, "前端重新登录"),

    RE_PLATFORM_LOGIN_V2(506, "后端重新登录"),

    REFRESH_PAGE_BY_FORCE_V2(355, "强制刷新页面状态码"),

    REFRESH_INTERFACE_BY_FORCE_V2(360, "强制刷新接口"),


    /**
     * ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓展示响应码-系统级别[500,1000）↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
     */

    FAIL(500, "请求失败"),

    ACCOUNT_IS_EXIST(511, "账号已存在"),
    ACCOUNT_NOT_EXIST(512, "账号不存在"),

    REFRESH_PAGE_BY_SUGGEST(556, "建议刷新页面"),


    /**
     * ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓  不展示相应码-业务级[-∞,-10000）↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
     * {项目A}不展示相应码-业务级[-20000,-10000）   代码写入{项目A}项目的StateCodeEnum.class
     * {项目B}不展示相应码-业务级[-30000,-20000）   代码写入{项目A}项目的StateCodeEnum.class
     */


    /**
     * ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓展示响应码-业务级别[10000,+∞)↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
     * {项目A}不展示相应码-业务级[10000,20000）   代码写入{项目A}项目的StateCodeEnum.class
     * {项目B}不展示相应码-业务级[20000,30000）   代码写入{项目A}项目的StateCodeEnum.class
     *
     */


    ;
    private int code;

    private String msg;

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    StateCodeEnum(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }
}